/**
 * 根据固定字数和不固定字数确认行数和最后一行的字符数
 * @param {number} fixed 固定字数（中文算2个字符，英文算1个字符）
 * @param {number} Unfixed 不固定字数（中文算2个字符，英文算1个字符）
 */
const confirmRows = (fixed, Unfixed) => {
    // 一行的最大字符
    const MAXCHAR = 64;
    // 计算总字符数
    const totalChars = fixed + Unfixed;

    // 计算所需行数（向上取整）
    // 当总字符数为0时返回1行，否则用总字符数除以每行最大字符数并向上取整
    const rows = totalChars === 0 ? 1 : Math.ceil(totalChars / MAXCHAR);
    // 计算最后一行的字符数
    const lastRowChars = totalChars % MAXCHAR;
    return {
        rows,
        lastRowChars
    }
}
/**
* 统计字符串字符个数
* @param {string} str - 要统计的字符串
* @returns {number} 计算后的字符总数
* 规则：中文算2个，英文算1个，忽略换行符\n
*/
const countChars = (str) => {
    // 过滤掉所有换行符
    const filteredStr = str.replace(/\n/g, '');
    let total = 0;

    // 遍历每个字符计算字节数
    for (let i = 0; i < filteredStr.length; i++) {
        const charCode = filteredStr.charCodeAt(i);
        if (charCode >= 0 && charCode <= 127) {
            total += 1;
        } else {
            total += 2;
        }
    }

    return total;
}
export {
    confirmRows,
    countChars
}
